home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
M-More Monthly Disks
/
(c)md.d64
/
sprite dump.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
6KB
|
206 lines
100 REM "PRINT A SPRITE"
110 REM
120 REM DESIGN BY PHIL MOLL
130 REM LOGIC BY BRIAN SMITHER
140 REM SACRAMENTO COMMODORE
150 REM COMPUTER CLUB
160 REM PO BOX 2227
170 REM SACRAMENTO, CA 95810
180 REM
190 REM IN ORDER TO USE THIS UTILITY,
200 REM SPRITE DATA MUST HAVE BEEN
210 REM PREVIOUSLY STORED IN MEMORY.
220 REM
230 REM PRINTER DEVICE IS 4 AND ANY
240 REM INTERFACE TO A NON-COMMODORE
250 REM PRINTER MUST EMULATE THE 1515,
260 REM 1525, AND 1526 DOT ADDRESSABLE
270 REM GRAPHICS ADEQUATELY.
280 REM
290 REM THIS PROGRAM LOGIC MAY BE
300 REM INSERTED INTO A SPRITE EDITOR
310 REM TYPE PROGRAM AS A SUBROUTINE.
320 :
330 :
340 PRINT"[147]":POKE53280,0:POKE53281,0:POKE646,3:V=53248:POKE2040,192
350 POKEV+23,71:POKEV+39,8
360 FORSD=1TO12:PRINT:NEXT
370 PRINTTAB(9)"PLEASE WAIT 3 SECONDS"
380 FORJ=12288TO12350:READQ:POKEJ,Q:NEXT
390 POKE2041,193:FORJ=12352TO12414:READR:POKEJ,R:NEXT
400 POKE2042,194:FORJ=12416TO12478:READS:POKEJ,S:NEXT
410 POKE2043,195:FORJ=12480TO12542:READD:POKEJ,D:NEXT
420 POKE2044,196:FORJ=12544TO12606:READG:POKEJ,G:NEXT
430 POKE2045,197:FORJ=12608TO12670:READH:POKEJ,H:NEXT
440 POKE2046,198:FORJ=12672TO12734:READK:POKEJ,K:NEXT
450 PRINT"[147]":POKEV+21,127
460 POKEV+0,146:POKEV+6,165:POKEV+7,160
470 POKEV+1,130:POKEV+42,12
480 POKEV+8,165:POKEV+9,160:POKEV+43,4
490 POKEV+10,165:POKEV+11,157:POKEV+44,14
500 POKEV+12,150:POKEV+13,60:POKEV+45,12:POKEV+29,64:POKEV+27,0
510 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,128,0,7,0
520 DATA0,7,128,0,7,0,0,7,128,7
530 DATA255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
540 DATA63,255,255
550 REM
560 POKEV+40,8
570 POKEV+2,168
580 POKEV+3,130
590 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
600 DATA0,0,0,0,0,0,0,255,255,0,255,255,0,255,255,0,255,255,0,255,255,0
610 DATA255,255,0,255,255,0
620 REM
630 POKEV+41,8:POKEV+4,180:POKEV+5,130
640 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,240,0,0,112
650 DATA0,0,240,0,0,112,0,0,240,0,255,255,192,255,255,255,255,255,255,255
660 DATA255,223,255,255,255,255,255,255,255,255,252
670 GOSUB970
680 PRINT"":FORSD=1TO11:PRINT:NEXTSD:FORPA=1TO3:PRINTTAB(17)" ":NEXT
690 PRINT"[145][145]":A$=" DATA2,0,15"
700 FORI=1TOLEN(A$)
710 PRINTMID$(A$,LEN(A$)-I+1,I);"[145]"
720 FORT=1TO30:NEXTT
730 NEXTI
740 PRINT" "
750 PRINT"":FORSD=1TO10-ZZ:PRINT:NEXT:PRINTTAB(17)" "
760 IFZZ=0THENPOKEV+7,153:POKEV+9,154
770 IFZZ=1THENPOKEV+7,145:POKEV+9,146:POKEV+11,147
780 IFZZ=2THENPOKEV+7,138:POKEV+9,139:POKEV+11,140
790 IFZZ=2THEN820
800 ZZ=ZZ+1:PRINT"":FORSD=1TO14:PRINT:NEXT
810 GOTO690
820 PRINT"":FORSD=1TO10:PRINT:NEXT:FORT=1TO1000:NEXT
830 GOTO1050
840 DATA0,0,0,0,56,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
850 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
860 REM SHIRT/ARMS
870 DATA0,0,192,0,1,128,0,3,0,0,124,0,0,220,0,1,156,0,0,220,0,0,0,0,0,0,0,0,0
880 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
890 REM PANTS
900 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,0,54,0,0
910 DATA54,0,0,54,0,0,54,0,0,54,0,0,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
920 DATA0,0,0,0,0,0
930 REM DUMP A
940 DATA0,0,0,0,0,0,0,0,0,246,177,190,214,187,182,214,191,190,214,181,176
950 DATA247,177,176,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0,102,0,0,102,0,0,126,0,0
960 DATA102,0,0,102,0,0,102,0,0,0,0,0,0,0
970 PRINT"":FORSD=1TO17:PRINT:NEXT
980 PRINTTAB(4)"[159] "
990 PRINTTAB(4)"[129] "
1000 PRINTTAB(4)"[154] "
1010 PRINTTAB(4)"[156] "
1020 PRINTTAB(4)" "
1030 PRINT:PRINTTAB(6)"[154]BY[129]: [158]B[156]R[150]I[153]A[154]N [159]S[129]M[129]I[156]TH[158]E[150]R[159] & [129]P[156]H[159]I[154]L [156]M[158]0[153]L[150]L[145]"
1040 RETURN
1050 PRINT"[147]":POKE53280,0:POKE53281,0:POKEV+21,56:POKE646,3:PRINT:PRINT
1060 A$="DUMP A SPRITE":GOSUB1190
1070 FORSD=1TO12:PRINT:NEXT:POKE646,12
1080 PRINTTAB(10)"F1 = INSTRUCTIONS":PRINT
1090 PRINTTAB(10)"F3 = LIST THE SUBROUTINE":PRINT
1100 PRINTTAB(10)"F5 = PRINT THE SUBROUTINE":PRINT
1110 PRINTTAB(10)"F7 = RUN ROUTINE
1120 [161]RT$:[139]RT$[178]""[167]1120
1130 [139] RT$[178][199](133) [167] 1820:
1140 [139] RT$[178][199](134) [167] [155] 1180[171]1750
1150 [139] RT$[178][199](135) [167] 2020
1160 [139] RT$[178][199](136) [167] 1290
1170 [137]1120
1180 [128]
1190 A[178][195](A$):[139]A[173]2[179][177][181](A[173]2)[167]A$[178]" "[170]A$:[137] 1190
1200 [129]I[178]1[164]A[173]2
1210 [153][163]19[171]I);[200](A$,I);[201](A$,I)
1220 [153]"ON";:[129]T[178]1[164]50:[130]:[130]
1230 [142]
1240 [143]*****************************
1250 [143]*****************************
1260 [143] DUMP ALGORITHM
1270 [143]*****************************
1280 [143]*****************************
1290 [153]"LOAD":[133]"SPRITE BLOCK NUMBER";BK:[153]"THIS WILL TAKE 47 SECONDS"
1300 [129] Z[178]0 [164] 2
1310 [129] X[178]0 [164] 18 [169] 3
1320 A((X[171]0)[173]3,8)[178][194](BK[172]64[170]X[170]Z[172]21)
1330 [130] X
1340 [129] X[178]1 [164] 19 [169] 3
1350 B((X[171]1)[173]3,8)[178][194](BK[172]64[170]X[170]Z[172]21)
1360 [130] X
1370 [129] X[178]2 [164] 20 [169] 3
1380 C((X[171]2)[173]3,8)[178][194](BK[172]64[170]X[170]Z[172]21)
1390 [130] X
1400 [129] Y[178]0 [164] 6
1410 [129] X[178]0 [164] 7
1420 A(Y,X)[178][180](A(Y,8)[175]2[174](7[171]X))
1430 [130] X
1440 [130] Y
1450 [129] Y[178]0 [164] 6
1460 [129] X[178]0 [164] 7
1470 B(Y,X)[178][180](B(Y,8)[175]2[174](7[171]X))
1480 [130] X
1490 [130] Y
1500 [129] Y[178]0 [164] 6
1510 [129] X[178]0 [164] 7
1520 C(Y,X)[178][180](C(Y,8)[175]2[174](7[171]X))
1530 [130] X
1540 [130] Y
1550 [129] X[178]0 [164] 7
1560 [129] Y[178]0 [164] 6
1570 D[178]D[170]A(Y,X)[172]2[174]Y
1580 [130] Y
1590 D$[178]D$[170][199](D[170]128):D[178]0
1600 [130] X
1610 [129] X[178]0 [164] 7
1620 [129] Y[178]0 [164] 6
1630 D[178]D[170]B(Y,X)[172]2[174]Y
1640 [130] Y
1650 D$[178]D$[170][199](D[170]128):D[178]0
1660 [130] X
1670 [129] X[178]0 [164] 7
1680 [129] Y[178]0 [164] 6
1690 D[178]D[170]C(Y,X)[172]2[174]Y
1700 [130] Y
1710 D$[178]D$[170][199](D[170]128):D[178]0
1720 [130] X
1730 PR$[178]PR$[170]D$[170][199](13):D$[178]""
1740 [130] Z
1750 [159]4,4
1760 [152]4,[199](8)PR$
1770 [152]4,[199](20)
1780 [160]4:[129]ZZ[178]1[164]2000:[130]:[138]
1790 [143]******************************
1800 [143] END OF DUMP
1810 [143]******************************
1820 [153]"LOAD":[151]53280,12:[151]53281,15:[151]646,6:[151]V[170]21,0
1830 [153]:[153][163]13)"INSTRUCTIONS"
1840 [153]:[153]:[153]:[151]646,0
1850 [153]" THIS SPRITE DUMP IS DESIGNED"
1860 [153]" TO WORK WITH THE COMMODORE 1515,
1870 PRINT" 1525 OR 1526 PRINTER.
1880 [153]
1890 [153]" OTHER DOT MATRIX PRINTERS
1900 PRINT" WILL WORK IF THEY ADEQUATELY
1910 [153]" EMULATE COMMODORE DOT ADDRESSABLE
1920 PRINT" GRAPHICS.
1930 [153]:[153]" THE LOGIC WHICH PERFORMS THE
1940 PRINT" DUMP IS AVAILABLE THROUGH THE
1950 [153]" MENU AND MAY BE TYPED INTO ANY
1960 PRINT" PROGRAM AS A SUBROUTINE."
1970 PRINT:PRINT:PRINT
1980 PRINTTAB(10)"PRESS F7 TO CONTINUE":
1990 GET RT$:IF RT$="" THEN 1990
2000 IF RT$=CHR$(136)THEN 1050
2010 GOTO 1990
2020 OPEN1,4:CMD1
2030 LIST 1180-1750
2040 PRINT#1:CLOSE1,4
2050 GOTO 1050
2060 PRINT"[147]":FORSD=1TO8:PRINT:NEXT:POKE646,7:X=0:CT=0
2070 X=X+1:POKE646,X:CT=CT+1
2080 PRINT"":FORSD=1TO8:PRINT:NEXT:PRINTTAB(22)"BYE !"
2090 FORT=1TO30:NEXT
2100 IF CT>20 THEN 2130
2110 REM CLR:END
2120 GOTO2070
2130 FORT=1TO1000:NEXT
2140 END:REM SYS64738